package com.example.controller;

import com.example.entity.Qishou;
import com.example.service.QishouService;
import com.example.util.ResponseCode;
import com.example.util.ResponseData;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * (Qishou)表控制层
 *
 * @author makejava
 * @since 2023-06-26 19:36:22
 */
@RestController
@RequestMapping("qishou")
public class QishouController {
    /**
     * 服务对象
     */
    @Resource
    private QishouService qishouService;

    /**
     * 分页查询
     *
     * @param qishou 筛选条件
     * @param pageRequest      分页对象
     * @return 查询结果
     */
    @GetMapping
    public ResponseEntity<Page<Qishou>> queryByPage(Qishou qishou, PageRequest pageRequest) {
        return ResponseEntity.ok(this.qishouService.queryByPage(qishou, pageRequest));
    }

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("{id}")
    public ResponseEntity<Qishou> queryById(@PathVariable("id") Integer id) {
        return ResponseEntity.ok(this.qishouService.queryById(id));
    }

    /**
     * 新增数据
     *
     * @param qishou 实体
     * @return 新增结果
     */
    @PostMapping
    public ResponseEntity<Qishou> add(Qishou qishou) {
        return ResponseEntity.ok(this.qishouService.insert(qishou));
    }

    /**
     * 编辑数据
     *
     * @param qishou 实体
     * @return 编辑结果
     */
    @PutMapping
    public ResponseEntity<Qishou> edit(Qishou qishou) {
        return ResponseEntity.ok(this.qishouService.update(qishou));
    }

    /**
     * 删除数据
     *
     * @param id 主键
     * @return 删除是否成功
     */
    @DeleteMapping
    public ResponseEntity<Boolean> deleteById(Integer id) {
        return ResponseEntity.ok(this.qishouService.deleteById(id));
    }
    @PostMapping("/toRegister")
    public ResponseData toRegister(Qishou qishou){
        return qishouService.toRegister(qishou);
    }
    @PostMapping("/toLogin")
    public ResponseData toLogin(Qishou qishou,String code){
        return  qishouService.toLogin(qishou,code);
    }
}

